/**
 JavaScript的函数其实都指向某个变量。
 既然变量可以指向函数，函数的参数能接收变量，
 那么一个函数就可以接收另一个函数作为参数，
 这种函数就称之为高阶函数。

 编写高阶函数，就是让函数的参数能够接收别的函数。

 常见内置高阶函数：map/reduce、filter、sort、Array

 */


//demo1:
function Fn(a,fn){
    return fn(a)
}

function fun(a){
    return a
}

let result = Fn(1,fun)
console.log(result)
console.log('---------------------------------')

/**
 *map
 * 举例说明，比如我们有一个函数f(x)=x2，
 * 要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上，就可以用map实现如下
 */
function pow(x) {
    return x * x;
}

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var results = arr.map(pow);
console.log(results.toString());//1,4,9,16,25,36,49,64,81
console.log('---------------------------------')




